package day08;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;

/**
 * 使用异常捕获机制完成下述IO操作
 * 编写程序，要求下面的类实现功能:
 * 添加新员工
 * 要求用户输入一个员工信息，格式如下:
 * jackson,25,男,5000,2008-12-22
 * 用户输入后需要做下述验证:
 * 要求用户名长度在1-20个字符之间且必须是英文
 * 年龄在0-100之间的整数
 * 性别只能是:"男"或"女"
 * 当发现用户输入有不符合规定时，提醒用户
 * 相关内容输入不符合要求，并要求重新输入。
 * 都输入正确后，将该员工添加到emp.txt文件
 * 的最后一行。
 * 
 * @author Bonnie
 *
 */
public class Test06 {
	public static void main(String[] args) {
		Scanner console = new Scanner(System.in);
		String info = "";
		while (true) {
			System.out.print("请输入员工信息：");
			info = console.next();
			String[] ss = info.split(",");
			if (check(ss)) {// 判断输入格式
				break;
			} 
		}
		PrintWriter pw = null;
		try {//添加到文件中
			pw = new PrintWriter(
					new OutputStreamWriter(
							new FileOutputStream("emp.txt", true), "UTF-8"), true);
			pw.println(info);
			System.out.println("新员工添加成功！");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} finally {
			pw.close();
			console.close();
		}
		
	}
	
	public static boolean check(String[] ss) {
		String name = ss[0];
		int age = Integer.parseInt(ss[1]);
		String gender = ss[2];
//		int salary = Integer.parseInt(ss[3]);
		if (name.matches("^[a-zA-Z]{1,20}$")) {// ^[a-zA-Z]{1,20}$
			if (age >= 0 && age <= 100) {
				if (gender.equals("男") || gender.equals("女")) {
					return true;
				} else {
					System.out.println("性别输入错误！");
					System.out.println("性别只能是:\"男\"或\"女\"!");
					return false;
				}
			} else {
				System.out.println("年龄输入错误！");
				System.out.println("年龄在0-100之间的整数!");
				return false;
			}
		} else {
			System.out.println("姓名输入错误！");
			System.out.println("用户名长度在1-20个字符之间且必须是英文!");
			return false;
		}
		
	}
}
